﻿namespace SeedObject
{
    internal enum ID
    {
        Sequence,
        Help,
        DataBaseDriver,
        PrimaryKey,
        Connection,
        Tips,
        Query,
        Counter,
        Criteria,
        Driver,
        State,
        Label,
        Trigger,
        Regexp,
        SqlExpression,
        Format,
        Id,
        Index,
        Length,
        RecoveryMode,
        Name,
        ObjectGraph,
        Operator,
        Parent,
        Properties,
        Proxy,
        ParentRelationship,
        ChildRelationship,
        Relationship,
        Request,
        Sql,
        Table,
        Tag,
        DbType,
        Translator,
        Unique,
        Value
    }

    internal struct Characters
    {
        public const char Apostrophe = '`';
    }
    internal struct Chains
    {

        public const string La = "La";
        public const string Las = "Las";
        public const string El = "El";
        public const string Los = "Los";
        public const string Lo = "Lo";
        public const string Space = " ";
        public const string Error = "Error";
        public const string Equal = "=";
        public const string In = "En ";

        public const string WhenRunningValidation = "Al ejecutar la validación ";

        public const string Item = "Item";
        public const string Id = "Id";
        public const string Key = "PrimaryKey";
        public const string NumericalIndex = "NumericIndex";
        public const string Value = "Value";

    }

    #region Trigger
    public enum Trigger
    {
        /// <summary>
        /// allow connect a routine after upgrading on the database
        /// </summary>
        AfterUpdating,
        /// <summary>
        /// allow connect a routine after inserting on the database
        /// </summary>
        AfterInserting,
        /// <summary>
        /// allow connect a routine after recovering on the database
        /// </summary>
        AfterRecovering,
        /// <summary>
        /// allow connect a routine after eliminating on the database
        /// </summary>
        AfterEliminating,
        /// <summary>
        /// allow connect a routine before removing on the database
        /// </summary>
        BeforeRemoving,
        /// <summary>
        /// allow connect a routine before composing criteria
        /// </summary>
        BeforeComposingCriteria,
        /// <summary>
        /// allow connect a routine before insert on the database
        /// </summary>
        BeforeInsert,
        /// <summary>
        /// allow connect a routine before update on the database
        /// </summary>
        BeforeUpdate,
        /// <summary>
        /// allow connect a routine before painting
        /// </summary>
        BeforePainting,
        /// <summary>
        /// allow connect a routine before recovering
        /// </summary>
        BeforeRecovering,
        /// <summary>
        /// allow connect a routine on init
        /// </summary>
        Init,
        /// <summary>
        /// allow connect a routine on change
        /// </summary>
        OnChange,
        /// <summary>
        /// allow connect a routine on instantiating
        /// </summary>
        OnInstantiating,
        /// <summary>
        /// allow connect a routine on validate
        /// </summary>
        OnValidate,
    }
    #endregion

    internal enum Number
    {
        /// <summary>
        /// Singular
        /// </summary>
        Singular,
        /// <summary>
        /// Plural
        /// </summary>
        Plural
    }

    /// <summary>
    /// gender types of the object
    /// </summary>
    internal enum Gender
    {
        /// <summary>
        /// Gender male
        /// </summary>
        Male,
        /// <summary>
        /// Female gender
        /// </summary>
        Female,
        /// <summary>
        /// Neuter
        /// </summary>
        Neuter
    }
}